package bavaria.hightech.banking;

import bavaria.hightech.banking.Money.Waehrung;
import bavaria.hightech.exceptions.NichtGenugGeldException;

public class Girokonto extends Konto {
	
	private int zinssatz;

	public Girokonto(int kontonummer, String kontoinhaber, int zinssatz, Waehrung waehrung) {
		super(kontonummer, kontoinhaber, waehrung);
		this.zinssatz = zinssatz;
		
	}

	@Override
	public void verzinsen() throws NichtGenugGeldException {
		if(getKontostand().getBetrag() >= 0){
			double zinsen = (getKontostand().getBetrag() * this.zinssatz)/100f;
			Money roundZinsen = new Money(Math.round(zinsen),this.getKontostand().getWaehrung());
			zugang(roundZinsen, "Haben-Zinsen");
		}else{
			long absKontostand = getKontostand().getBetrag() * -1;
			double zinsen = (absKontostand * this.zinssatz)/100f;
			Money roundZinsen = new Money(Math.round(zinsen),this.getKontostand().getWaehrung());
			abgang(roundZinsen, "Soll-Zinsen");
		}

	}
	
	public String toString(){
		return "Girokonto::" +getKontoinhaber() +"::" +getKontonummer() +"::" +getKontostand();
	}

}
